Coalescing Conditional Branches into Efficient Indirect Jumps

نویسندگان

  • Gang-Ryung Uh
  • David B. Whalley
چکیده

Indirect jumps from tables are traditionally only generated by compilers as an intermediate code generation decision when translating multiway selection statements. However, making this decision during intermediate code generation poses problems. The research described in this paper resolves these problems by using several types of static analysis as a framework for a code improving transformation that exploits indirect jumps from tables. First, control-ow analysis is performed that provides opportunities for coalescing branches generated from other control statements besides multiway selection statements. Second, the optimizer uses various techniques to reduce the cost of indirect jump operations by statically analyzing the context of the surrounding code. Finally, path and branch prediction analysis is used to provide a more accurate estimation of the beneet of coalescing a detected set of branches into a single indirect jump. The results indicate that the coalescing transformation can be frequently applied with signiicant reductions in the number of instructions executed and total cache work. This paper shows that static analysis can be used to implement an eeective improving transformation for exploiting indirect jumps.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Effectively Exploiting Indirect Jumps

This dissertation describes a general code-improving transformation that can coalesce conditional branches into an indirect jump from a table. Applying this transformation allows an optimizer to exploit indirect jumps for many other coalescing opportunities besides the translation of multiway branch statements. First, data ow analysis is performed to detect a set of coalescent conditional branc...

متن کامل

E ectively Exploiting Indirect Jumps

This paper describes a general code-improving transformation that can coalesce conditional branches into an indirect jump from a table. Applying this transformation allows an optimizer to exploit indirect jumps for many other coalescing opportunities besides the translation of multiway branch statements. First, dataaow analysis is performed to detect a set of coalescent conditional branches, wh...

متن کامل

Advanced Techniques for Improving Indirect Branch Prediction Accuracy

Deep pipelines and fast clock rates are necessitating the development of high accuracy branch predictors. From microarchitectural viewpoint, in the last decade the importance of indirect branch prediction increased even though, in the computing programs the indirect jumps remain less frequent than the more predictable conditional branches. One reason refers to predicative execution that implies...

متن کامل

Register Indirect Jump Target Forwarding

Object-oriented languages have recently become common, making register indirect jumps more important than ever. In objectoriented languages, virtual functions are heavily used because they improve programming productivity greatly. Virtual function calls usually consist of register indirect jumps, and consequently, programs written in objectoriented languages contain many register indirect jumps...

متن کامل

A Comprehensive Front-End Architecture for the VeriSimple Alpha Pipeline

The performance of a pipelined computer system depends heavily on the degree of Instruction Level Parallelism (ILP) obtained. Pipeline stalling or flushing due to unpredicted or mispredicted branch instructions has become a significant bottleneck to achieving high ILP. A good branch predictor can reduce the number of such stalls and flushes and is therefore critical to the performance of modern...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1997